andoreth
|
Disciple
|
|
|
Reged: 05/29/03
|
Posts: 1002
|
Loc: Wandering around in the CS
|
|
|
I just made this discovery, thanks in part to some feedback I received from a person concerning advanced herbalism.
It has been mentioned by JOG and others that dayspassed was broken by Bloodmoon, but not all that clearly as to the nature of the "break". I have Bloodmoon, and have used dayspassed consistantly with no problems, so I figured that maybe this problem had been fixed in the official patch.
It hasn't, at least not completely.
I made AH with both Tribunal and Bloodmoon installed. The scripts work fine, dayspassed functions correctly and I can pass its information to local variables in all of my scripts with no difficulties.
However, I also wanted to make AH available for people who either onwed only Bloodmoon, only Tribunal, or none of the expansions. To do this, I opened the mod in the CS while ignoring all of the plants and attached scripts that don't belong in the version I was creating. Example: for the Tribunal Only version, I opened the mod while ignoring all of the Bloodmoon plants & scripts (holly, wolfsbane, etc.) and vice versa for the Tribunal only version. This is when the weirdness occurs.
The scathecraw and stoneflower plants work in the Bloodmoon + Tribunal version, they do NOT work in any of the other "reduced" versions, even though they contain the exact same scripts. All of the other plants (AFAIK) DO work, even though their scripts use dayspassed. AND, if I take the script for chokeweed (which works when attached to the chokeweed plant) and attach it to the scathecraw plant, it stops working for scathecraw even though it continues to work for chokeweed! I have issolated the problem to be directly related to the use of dayspassed, and if I ";" out the dayspassed lines the scripts work.
I have not experimented enough to see if the same is true with other objects, and definitely not enough to discover _why_ this is occuring. As it is, I've spent 5 hours working on what I thought would be a 1/2 hour fix, and I'm frustrated and tired. (Though this is the life we have chosen... .) I'm going to have to replace dayspassed with the old "not-current-month" timer for these plants until this is sorted out.
Anyway, I just thought I'd pass this info along in case it ever helps someone who comes across the same issue. Hopefully it will save you 4 hours!
-------------------- Making Morrowind a little more cluttered every day!
Advanced Herbalism
Potted Plants
Real Furniture
My ugly websight
mirror
Post Extras:
|
rascilon
|
Curate
|
|
|
Reged: 12/16/03
|
Posts: 407
|
Loc: Monterey, CA
|
|
|
Thank you for sharing. It's always nice when people figure out stuff and make a point to share it with the rest of us. Kudos brother!
Rascilon
Post Extras:
|
Nigedo
|
Diviner
|
|
|
Reged: 05/30/03
|
Posts: 2586
|
Loc: Deep beneath Vvardenfell
|
|
|
Thanks Rascilon.
AFAIK, though, DaysPassed is an expansion-required function.
So, even removing the dependencies of your mod upon those master files and artwork would not remove the dependence of your scripts, for correct working, upon the current level of scripting functionality of your version of TESCS.
Meaning, it wouldn't work at all for anyone running Morrowind only, who has never installed one of the expansions, since their game-engine simply would not have this functionality.
Doesn't explain your wierdness though, since the functionality is still present in your version of the game engine whether you have loaded the expansion master files or not, I would have thought.
-------------------- Dean of The Theoretical Whirling School Of Vivec
The Whirling School | Academy for Dwemer Studies | TES Lore FAQ
Post Extras:
|
Zenethor
|
Novice
|
|
|
Reged: 04/23/04
|
Posts: 17
|
Loc: That would help them find me. ;)
|
|
|
Isn't dayspassed a global variable that says how many days have passed since the beginning of the game?
-------------------- 17 Pineapple
Post Extras:
|
ManaUser
|
Master
|
|
|
Reged: 06/01/00
|
Posts: 6089
|
Loc: Long Beach, CA, USA
|
|
|
Quote:
Isn't dayspassed a global variable that says how many days have passed since the beginning of the game?
Yes it is, except when it isn't.
Post Extras:
|
|
|
Isn't DayPassed just a simple global script started somewhere in the game?
Code:
Begin DayPass
short control
set DayPassed to 0
if ( control != Day)
set control to Day
set DayPassed to (DayPassed + 1)
endif
End
-------------------- "They say that Dark Elven women are pro-- pro-- something. Prostitutes?"
"You mean promiscuous. Although some do become prostitutes."
- The Real Barenziah v. II
Edited by DranyxTheFire (05/17/04 02:29 AM)
Post Extras:
|
rascilon
|
Curate
|
|
|
Reged: 12/16/03
|
Posts: 407
|
Loc: Monterey, CA
|
|
|
Is DayPassed only used for Organic Containers? I'm not very clear on the funtionality.
Rascilon
Post Extras:
|
|
|
Quote:
Is DayPassed only used for Organic Containers? I'm not very clear on the funtionality.
No, it's not really anything to do with containers, that's just what andoreth happened to be using it in.
DaysPassed is an undocumented global variable which contains the number of days since the game started. Obviously this could be useful in lots of time based scripts, which otherwise have to play games with a local var & global Day.
Unfortunately it seems to be somewhat broken, as JOG originally reported in the SFD Errata thread.
Post Extras:
|
Nigedo
|
Diviner
|
|
|
Reged: 05/30/03
|
Posts: 2586
|
Loc: Deep beneath Vvardenfell
|
|
|
Yeah, but don't be put off by that at all.
DaysPassed works fine in the majority of instances and should definitely be considered as the first approach to time based scripting for mods that support Tribunal or Bloodmoon.
When it does work, DaysPassed is the *only* reliable method of calculating elapsed days available.
It is just unreliable in some scenarios, as evidenced by Andoreth's experience and mine, so it needs to be tested in the given scenario to check that it works as expected.
-------------------- Dean of The Theoretical Whirling School Of Vivec
The Whirling School | Academy for Dwemer Studies | TES Lore FAQ
Post Extras:
|